\hypertarget{class_mecanum_drive_subsystem}{
\section{MecanumDriveSubsystem Class Reference}
\label{class_mecanum_drive_subsystem}\index{MecanumDriveSubsystem@{MecanumDriveSubsystem}}
}


{\ttfamily \#include $<$MecanumDriveSubsystem.hpp$>$}

Inheritance diagram for MecanumDriveSubsystem:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=4.000000cm]{class_mecanum_drive_subsystem}
\end{center}
\end{figure}
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{struct_mecanum_drive_subsystem_1_1_cartesian_value}{CartesianValue}
\item 
class \hyperlink{class_mecanum_drive_subsystem_1_1_dead_zone_modifier}{DeadZoneModifier}
\item 
class \hyperlink{class_mecanum_drive_subsystem_1_1_drive_distance}{DriveDistance}
\item 
class {\bfseries DriveDistanceAsyncResult}
\item 
class \hyperlink{class_mecanum_drive_subsystem_1_1_drive_start_state}{DriveStartState}
\item 
class \hyperlink{class_mecanum_drive_subsystem_1_1_drive_state}{DriveState}
\item 
class \hyperlink{class_mecanum_drive_subsystem_1_1_scale_modifier}{ScaleModifier}
\end{DoxyCompactItemize}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
enum {\bfseries DriveMode} \{ {\bfseries DriveModeNone} =  0, 
{\bfseries DriveModeCartesian} =  1, 
{\bfseries DriveModePolar} =  2
 \}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{class_mecanum_drive_subsystem_ae50a6dbdaac75006deeedf63e059be4d}{MecanumDriveSubsystem} (UINT32 leftFrontMotorChannel, UINT32 leftBackMotorChannel, UINT32 rightFrontMotorChannel, UINT32 rightBackMotorChannel)
\item 
\hyperlink{class_mecanum_drive_subsystem_a2433b685896d02c326c41a005cce30e0}{MecanumDriveSubsystem} (CANJaguar $\ast$leftFrontMotor, CANJaguar $\ast$leftBackMotor, CANJaguar $\ast$rightFrontMotor, CANJaguar $\ast$rightBackMotor)
\item 
\hyperlink{class_mecanum_drive_subsystem_a1dd13c2824eb5f65fa08e8325296fdea}{MecanumDriveSubsystem} (CANJaguar $\ast$leftFrontMotor, CANJaguar $\ast$leftBackMotor, CANJaguar $\ast$rightFrontMotor, CANJaguar $\ast$rightBackMotor, Gyro $\ast$gyro)
\item 
\hyperlink{class_mecanum_drive_subsystem_a043a49058ab2a8be3dd07e58f269d44e}{MecanumDriveSubsystem} (CANJaguar \&leftFrontMotor, CANJaguar \&leftBackMotor, CANJaguar \&rightFrontMotor, CANJaguar \&rightBackMotor)
\item 
\hypertarget{class_mecanum_drive_subsystem_a4b843a0486beed3406d0e5e9e6da3835}{
{\bfseries MecanumDriveSubsystem} (CANJaguar \&leftFrontMotor, CANJaguar \&leftBackMotor, CANJaguar \&rightFrontMotor, CANJaguar \&rightBackMotor, Gyro \&gyro)}
\label{class_mecanum_drive_subsystem_a4b843a0486beed3406d0e5e9e6da3835}

\item 
\hyperlink{class_mecanum_drive_subsystem_a8c3c37950c9e122d7e5bd5249532aa08}{MecanumDriveSubsystem} (SpeedController $\ast$leftFrontMotor, SpeedController $\ast$leftBackMotor, SpeedController $\ast$rightFrontMotor, SpeedController $\ast$rightBackMotor)
\item 
\hyperlink{class_mecanum_drive_subsystem_a55602773090af3988d24419b00fe3c74}{MecanumDriveSubsystem} (SpeedController \&leftFrontMotor, SpeedController \&leftBackMotor, SpeedController \&rightFrontMotor, SpeedController \&rightBackMotor)
\item 
\hypertarget{class_mecanum_drive_subsystem_a7ae0bf11148d668241a57129b07187dc}{
{\bfseries MecanumDriveSubsystem} (RobotDrive $\ast$drive, CANJaguar $\ast$leftFrontMotor, CANJaguar $\ast$leftBackMotor, CANJaguar $\ast$rightFrontMotor, CANJaguar $\ast$rightBackMotor)}
\label{class_mecanum_drive_subsystem_a7ae0bf11148d668241a57129b07187dc}

\item 
\hypertarget{class_mecanum_drive_subsystem_aa52ff86ea335d5a5cc3680e15212e21b}{
{\bfseries MecanumDriveSubsystem} (RobotDrive \&drive, CANJaguar \&leftFrontMotor, CANJaguar \&leftBackMotor, CANJaguar \&rightFrontMotor, CANJaguar \&rightBackMotor)}
\label{class_mecanum_drive_subsystem_aa52ff86ea335d5a5cc3680e15212e21b}

\item 
\hypertarget{class_mecanum_drive_subsystem_a7d1307e021b4f7966b7613ed5678706c}{
{\bfseries MecanumDriveSubsystem} (RobotDrive $\ast$drive)}
\label{class_mecanum_drive_subsystem_a7d1307e021b4f7966b7613ed5678706c}

\item 
\hypertarget{class_mecanum_drive_subsystem_acdd9d229b90c64040e045e1cb9cab3e0}{
{\bfseries MecanumDriveSubsystem} (RobotDrive \&drive)}
\label{class_mecanum_drive_subsystem_acdd9d229b90c64040e045e1cb9cab3e0}

\item 
virtual \hyperlink{class_mecanum_drive_subsystem_ad81cb42051774595e745081eeac475cf}{$\sim$MecanumDriveSubsystem} ()
\item 
virtual void \hyperlink{class_mecanum_drive_subsystem_a027be58738bb491c51eee57ecf34d371}{Stop} ()
\item 
void \hyperlink{class_mecanum_drive_subsystem_abc196f844ef6906272052ee7b31fb43d}{DriveByCartesian} (double x, double y, double rotation)
\item 
void \hyperlink{class_mecanum_drive_subsystem_a38c34a6ec95d28835e556b555d4528e8}{DriveByPolar} (double magnitude, double direction, double rotation)
\item 
boost::shared\_\-ptr$<$ \hyperlink{class_async_result}{AsyncResult}$<$ bool $>$ $>$ \hyperlink{class_mecanum_drive_subsystem_aeb1d04be78c8bf8623c36c01b9ca6184}{DriveDistanceByCartesian} (double x, double y, double rotation)
\item 
\hypertarget{class_mecanum_drive_subsystem_a58ee221a11f8810d65b777d8f6b9ad6a}{
boost::shared\_\-ptr$<$ \hyperlink{class_async_result}{AsyncResult}$<$ bool $>$ $>$ {\bfseries DriveDistanceByCartesian} (double x, double y, double rotation, double threshold)}
\label{class_mecanum_drive_subsystem_a58ee221a11f8810d65b777d8f6b9ad6a}

\item 
boost::shared\_\-ptr$<$ \hyperlink{class_async_result}{AsyncResult}$<$ bool $>$ $>$ \hyperlink{class_mecanum_drive_subsystem_af801998ce7b36ff92e4a15d617ff3b5d}{DriveDistanceByPolar} (double magnitude, double direction, double rotation)
\end{DoxyCompactItemize}
\subsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{class_mecanum_drive_subsystem_acfcc1a2b43d76e37aa87b36bd10d76d7}{
static \hyperlink{struct_mecanum_drive_subsystem_1_1_cartesian_value}{CartesianValue} {\bfseries TankDriveWithPassiveMecanumValueFetcher} (GenericHID \&leftJoystick, GenericHID \&rightJoystick)}
\label{class_mecanum_drive_subsystem_acfcc1a2b43d76e37aa87b36bd10d76d7}

\item 
\hypertarget{class_mecanum_drive_subsystem_aac5e0251a6d60fbd5a5a2995f994988d}{
static \hyperlink{struct_mecanum_drive_subsystem_1_1_cartesian_value}{CartesianValue} {\bfseries TankDriveWithActiveMecanumValueFetcher} (GenericHID \&leftJoystick, GenericHID \&rightJoystick)}
\label{class_mecanum_drive_subsystem_aac5e0251a6d60fbd5a5a2995f994988d}

\item 
\hypertarget{class_mecanum_drive_subsystem_a597a1e2f2992267e6f8d0b31b6de42b2}{
static \hyperlink{struct_mecanum_drive_subsystem_1_1_cartesian_value}{CartesianValue} {\bfseries ArcadeDriveNormalStyleWithMecanumValueFetcher} (GenericHID \&leftJoystick, GenericHID \&rightJoystick)}
\label{class_mecanum_drive_subsystem_a597a1e2f2992267e6f8d0b31b6de42b2}

\item 
\hypertarget{class_mecanum_drive_subsystem_a54bde5061f86232f7dac2e6dc17dc80f}{
static \hyperlink{struct_mecanum_drive_subsystem_1_1_cartesian_value}{CartesianValue} {\bfseries ArcadeDriveModernStyleWithMecanumValueFetcher} (GenericHID \&leftJoystick, GenericHID \&rightJoystick)}
\label{class_mecanum_drive_subsystem_a54bde5061f86232f7dac2e6dc17dc80f}

\item 
\hypertarget{class_mecanum_drive_subsystem_ae2bc0d5878ed496989af38e4e04b3c6a}{
static \hyperlink{struct_mecanum_drive_subsystem_1_1_cartesian_value}{CartesianValue} {\bfseries ArcadeDriveModernStyleWithMecanumValueFetcher} (\hyperlink{class_xbox_joystick}{XboxJoystick} \&joystick)}
\label{class_mecanum_drive_subsystem_ae2bc0d5878ed496989af38e4e04b3c6a}

\item 
\hypertarget{class_mecanum_drive_subsystem_adb44305aa28d1db4171ff46a88828ad3}{
static \hyperlink{struct_mecanum_drive_subsystem_1_1_cartesian_value}{CartesianValue} {\bfseries ArcadeDriveNormalStyleWithMecanumValueFetcher} (\hyperlink{class_xbox_joystick}{XboxJoystick} \&joystick)}
\label{class_mecanum_drive_subsystem_adb44305aa28d1db4171ff46a88828ad3}

\item 
\hypertarget{class_mecanum_drive_subsystem_a9b4db2dba67d96b252d7a0137df86a05}{
static \hyperlink{struct_mecanum_drive_subsystem_1_1_cartesian_value}{CartesianValue} {\bfseries TankDriveWithPassiveMecanumValueFetcher} (\hyperlink{class_xbox_joystick}{XboxJoystick} \&joystick)}
\label{class_mecanum_drive_subsystem_a9b4db2dba67d96b252d7a0137df86a05}

\item 
\hypertarget{class_mecanum_drive_subsystem_a633b94480f2619fb023b06bdac2c957c}{
static \hyperlink{struct_mecanum_drive_subsystem_1_1_cartesian_value}{CartesianValue} {\bfseries TankDriveWithPassiveMecanumValueFetcher} (\hyperlink{class_ps3_joystick}{Ps3Joystick} \&joystick)}
\label{class_mecanum_drive_subsystem_a633b94480f2619fb023b06bdac2c957c}

\item 
\hypertarget{class_mecanum_drive_subsystem_a8f8beede15b88e3be4edaefacf8fe182}{
static \hyperlink{struct_mecanum_drive_subsystem_1_1_cartesian_value}{CartesianValue} {\bfseries ArcadeDriveModernStyleWithMecanumValueFetcher} (\hyperlink{class_ps3_joystick}{Ps3Joystick} \&joystick)}
\label{class_mecanum_drive_subsystem_a8f8beede15b88e3be4edaefacf8fe182}

\item 
\hypertarget{class_mecanum_drive_subsystem_a43549715c88cfe7b4b1d0b6fb2bf9e4f}{
static \hyperlink{struct_mecanum_drive_subsystem_1_1_cartesian_value}{CartesianValue} {\bfseries ArcadeDriveNormalStyleWithMecanumValueFetcher} (\hyperlink{class_ps3_joystick}{Ps3Joystick} \&joystick)}
\label{class_mecanum_drive_subsystem_a43549715c88cfe7b4b1d0b6fb2bf9e4f}

\item 
\hypertarget{class_mecanum_drive_subsystem_ad640b550c94c7cfe36f708dd1b770452}{
static \hyperlink{struct_mecanum_drive_subsystem_1_1_cartesian_value}{CartesianValue} {\bfseries TiltDriveStyleWithMecanumValueFetcher} (\hyperlink{class_ps3_joystick}{Ps3Joystick} \&joystick)}
\label{class_mecanum_drive_subsystem_ad640b550c94c7cfe36f708dd1b770452}

\item 
\hypertarget{class_mecanum_drive_subsystem_af26bf81f8c2f402b2e437403b7525c17}{
static void {\bfseries DriveByCartesian} (\hyperlink{class_mecanum_drive_subsystem}{MecanumDriveSubsystem} \&drive, \hyperlink{struct_mecanum_drive_subsystem_1_1_cartesian_value}{CartesianValue} \&value)}
\label{class_mecanum_drive_subsystem_af26bf81f8c2f402b2e437403b7525c17}

\end{DoxyCompactItemize}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{class_mecanum_drive_subsystem_a0801e99e4eaa3a3d40972d7ccea801c4}{
virtual void {\bfseries Periodic} ()}
\label{class_mecanum_drive_subsystem_a0801e99e4eaa3a3d40972d7ccea801c4}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
The \hyperlink{class_mecanum_drive_subsystem}{MecanumDriveSubsystem} class is a class for drive subsystems that use mecanum wheels. 

\subsection{Constructor \& Destructor Documentation}
\hypertarget{class_mecanum_drive_subsystem_ae50a6dbdaac75006deeedf63e059be4d}{
\index{MecanumDriveSubsystem@{MecanumDriveSubsystem}!MecanumDriveSubsystem@{MecanumDriveSubsystem}}
\index{MecanumDriveSubsystem@{MecanumDriveSubsystem}!MecanumDriveSubsystem@{MecanumDriveSubsystem}}
\subsubsection[{MecanumDriveSubsystem}]{\setlength{\rightskip}{0pt plus 5cm}MecanumDriveSubsystem::MecanumDriveSubsystem (
\begin{DoxyParamCaption}
\item[{UINT32}]{leftFrontMotorChannel, }
\item[{UINT32}]{leftBackMotorChannel, }
\item[{UINT32}]{rightFrontMotorChannel, }
\item[{UINT32}]{rightBackMotorChannel}
\end{DoxyParamCaption}
)}}
\label{class_mecanum_drive_subsystem_ae50a6dbdaac75006deeedf63e059be4d}
Constructor for \hyperlink{class_mecanum_drive_subsystem}{MecanumDriveSubsystem}. \hypertarget{class_mecanum_drive_subsystem_a2433b685896d02c326c41a005cce30e0}{
\index{MecanumDriveSubsystem@{MecanumDriveSubsystem}!MecanumDriveSubsystem@{MecanumDriveSubsystem}}
\index{MecanumDriveSubsystem@{MecanumDriveSubsystem}!MecanumDriveSubsystem@{MecanumDriveSubsystem}}
\subsubsection[{MecanumDriveSubsystem}]{\setlength{\rightskip}{0pt plus 5cm}MecanumDriveSubsystem::MecanumDriveSubsystem (
\begin{DoxyParamCaption}
\item[{CANJaguar $\ast$}]{leftFrontMotor, }
\item[{CANJaguar $\ast$}]{leftBackMotor, }
\item[{CANJaguar $\ast$}]{rightFrontMotor, }
\item[{CANJaguar $\ast$}]{rightBackMotor}
\end{DoxyParamCaption}
)}}
\label{class_mecanum_drive_subsystem_a2433b685896d02c326c41a005cce30e0}
Constructor for \hyperlink{class_mecanum_drive_subsystem}{MecanumDriveSubsystem}. \hypertarget{class_mecanum_drive_subsystem_a1dd13c2824eb5f65fa08e8325296fdea}{
\index{MecanumDriveSubsystem@{MecanumDriveSubsystem}!MecanumDriveSubsystem@{MecanumDriveSubsystem}}
\index{MecanumDriveSubsystem@{MecanumDriveSubsystem}!MecanumDriveSubsystem@{MecanumDriveSubsystem}}
\subsubsection[{MecanumDriveSubsystem}]{\setlength{\rightskip}{0pt plus 5cm}MecanumDriveSubsystem::MecanumDriveSubsystem (
\begin{DoxyParamCaption}
\item[{CANJaguar $\ast$}]{leftFrontMotor, }
\item[{CANJaguar $\ast$}]{leftBackMotor, }
\item[{CANJaguar $\ast$}]{rightFrontMotor, }
\item[{CANJaguar $\ast$}]{rightBackMotor, }
\item[{Gyro $\ast$}]{gyro}
\end{DoxyParamCaption}
)}}
\label{class_mecanum_drive_subsystem_a1dd13c2824eb5f65fa08e8325296fdea}
Constructor for \hyperlink{class_mecanum_drive_subsystem}{MecanumDriveSubsystem}. \hypertarget{class_mecanum_drive_subsystem_a043a49058ab2a8be3dd07e58f269d44e}{
\index{MecanumDriveSubsystem@{MecanumDriveSubsystem}!MecanumDriveSubsystem@{MecanumDriveSubsystem}}
\index{MecanumDriveSubsystem@{MecanumDriveSubsystem}!MecanumDriveSubsystem@{MecanumDriveSubsystem}}
\subsubsection[{MecanumDriveSubsystem}]{\setlength{\rightskip}{0pt plus 5cm}MecanumDriveSubsystem::MecanumDriveSubsystem (
\begin{DoxyParamCaption}
\item[{CANJaguar \&}]{leftFrontMotor, }
\item[{CANJaguar \&}]{leftBackMotor, }
\item[{CANJaguar \&}]{rightFrontMotor, }
\item[{CANJaguar \&}]{rightBackMotor}
\end{DoxyParamCaption}
)}}
\label{class_mecanum_drive_subsystem_a043a49058ab2a8be3dd07e58f269d44e}
Constructor for \hyperlink{class_mecanum_drive_subsystem}{MecanumDriveSubsystem}. \hypertarget{class_mecanum_drive_subsystem_a8c3c37950c9e122d7e5bd5249532aa08}{
\index{MecanumDriveSubsystem@{MecanumDriveSubsystem}!MecanumDriveSubsystem@{MecanumDriveSubsystem}}
\index{MecanumDriveSubsystem@{MecanumDriveSubsystem}!MecanumDriveSubsystem@{MecanumDriveSubsystem}}
\subsubsection[{MecanumDriveSubsystem}]{\setlength{\rightskip}{0pt plus 5cm}MecanumDriveSubsystem::MecanumDriveSubsystem (
\begin{DoxyParamCaption}
\item[{SpeedController $\ast$}]{leftFrontMotor, }
\item[{SpeedController $\ast$}]{leftBackMotor, }
\item[{SpeedController $\ast$}]{rightFrontMotor, }
\item[{SpeedController $\ast$}]{rightBackMotor}
\end{DoxyParamCaption}
)}}
\label{class_mecanum_drive_subsystem_a8c3c37950c9e122d7e5bd5249532aa08}
Constructor for \hyperlink{class_mecanum_drive_subsystem}{MecanumDriveSubsystem}. \hypertarget{class_mecanum_drive_subsystem_a55602773090af3988d24419b00fe3c74}{
\index{MecanumDriveSubsystem@{MecanumDriveSubsystem}!MecanumDriveSubsystem@{MecanumDriveSubsystem}}
\index{MecanumDriveSubsystem@{MecanumDriveSubsystem}!MecanumDriveSubsystem@{MecanumDriveSubsystem}}
\subsubsection[{MecanumDriveSubsystem}]{\setlength{\rightskip}{0pt plus 5cm}MecanumDriveSubsystem::MecanumDriveSubsystem (
\begin{DoxyParamCaption}
\item[{SpeedController \&}]{leftFrontMotor, }
\item[{SpeedController \&}]{leftBackMotor, }
\item[{SpeedController \&}]{rightFrontMotor, }
\item[{SpeedController \&}]{rightBackMotor}
\end{DoxyParamCaption}
)}}
\label{class_mecanum_drive_subsystem_a55602773090af3988d24419b00fe3c74}
Constructor for \hyperlink{class_mecanum_drive_subsystem}{MecanumDriveSubsystem}. \hypertarget{class_mecanum_drive_subsystem_ad81cb42051774595e745081eeac475cf}{
\index{MecanumDriveSubsystem@{MecanumDriveSubsystem}!$\sim$MecanumDriveSubsystem@{$\sim$MecanumDriveSubsystem}}
\index{$\sim$MecanumDriveSubsystem@{$\sim$MecanumDriveSubsystem}!MecanumDriveSubsystem@{MecanumDriveSubsystem}}
\subsubsection[{$\sim$MecanumDriveSubsystem}]{\setlength{\rightskip}{0pt plus 5cm}MecanumDriveSubsystem::$\sim$MecanumDriveSubsystem (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{class_mecanum_drive_subsystem_ad81cb42051774595e745081eeac475cf}
Destructor for \hyperlink{class_mecanum_drive_subsystem}{MecanumDriveSubsystem}. 

\subsection{Member Function Documentation}
\hypertarget{class_mecanum_drive_subsystem_abc196f844ef6906272052ee7b31fb43d}{
\index{MecanumDriveSubsystem@{MecanumDriveSubsystem}!DriveByCartesian@{DriveByCartesian}}
\index{DriveByCartesian@{DriveByCartesian}!MecanumDriveSubsystem@{MecanumDriveSubsystem}}
\subsubsection[{DriveByCartesian}]{\setlength{\rightskip}{0pt plus 5cm}void MecanumDriveSubsystem::DriveByCartesian (
\begin{DoxyParamCaption}
\item[{double}]{x, }
\item[{double}]{y, }
\item[{double}]{rotation}
\end{DoxyParamCaption}
)}}
\label{class_mecanum_drive_subsystem_abc196f844ef6906272052ee7b31fb43d}
Drive the specified amount on a cartesian plane.

Testing shows this function works.


\begin{DoxyParams}{Parameters}
{\em x} & The amount to drive on the x-\/axis.  y The amount to drive on the y-\/axis.  rotation The amount to rotate. \\
\hline
\end{DoxyParams}
\hypertarget{class_mecanum_drive_subsystem_a38c34a6ec95d28835e556b555d4528e8}{
\index{MecanumDriveSubsystem@{MecanumDriveSubsystem}!DriveByPolar@{DriveByPolar}}
\index{DriveByPolar@{DriveByPolar}!MecanumDriveSubsystem@{MecanumDriveSubsystem}}
\subsubsection[{DriveByPolar}]{\setlength{\rightskip}{0pt plus 5cm}void MecanumDriveSubsystem::DriveByPolar (
\begin{DoxyParamCaption}
\item[{double}]{magnitude, }
\item[{double}]{direction, }
\item[{double}]{rotation}
\end{DoxyParamCaption}
)}}
\label{class_mecanum_drive_subsystem_a38c34a6ec95d28835e556b555d4528e8}
Drive the specified amount using polar coordinates.

This function is untested.


\begin{DoxyParams}{Parameters}
{\em magnitude} & The magnitude to drive.  direction The direction to drive.  rotation The amount to rotate. \\
\hline
\end{DoxyParams}
\hypertarget{class_mecanum_drive_subsystem_aeb1d04be78c8bf8623c36c01b9ca6184}{
\index{MecanumDriveSubsystem@{MecanumDriveSubsystem}!DriveDistanceByCartesian@{DriveDistanceByCartesian}}
\index{DriveDistanceByCartesian@{DriveDistanceByCartesian}!MecanumDriveSubsystem@{MecanumDriveSubsystem}}
\subsubsection[{DriveDistanceByCartesian}]{\setlength{\rightskip}{0pt plus 5cm}shared\_\-ptr$<$ {\bf AsyncResult}$<$ bool $>$ $>$ MecanumDriveSubsystem::DriveDistanceByCartesian (
\begin{DoxyParamCaption}
\item[{double}]{x, }
\item[{double}]{y, }
\item[{double}]{rotation}
\end{DoxyParamCaption}
)}}
\label{class_mecanum_drive_subsystem_aeb1d04be78c8bf8623c36c01b9ca6184}
Drive a distance specified by values in cartesian form.

Currently only works if CANJaguars are used. If CANJaguars aren't being used, an exception will be thrown.

This function doesn't seem to work.


\begin{DoxyParams}{Parameters}
{\em x} & Distance to move on the X axis reletive to the robot. \\
\hline
{\em y} & Distance to move on the Y axis reletive to the robot. \\
\hline
{\em rotation} & Amount to rotate.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A shared pointer to an ayncronous result of type bool. 
\end{DoxyReturn}
\hypertarget{class_mecanum_drive_subsystem_af801998ce7b36ff92e4a15d617ff3b5d}{
\index{MecanumDriveSubsystem@{MecanumDriveSubsystem}!DriveDistanceByPolar@{DriveDistanceByPolar}}
\index{DriveDistanceByPolar@{DriveDistanceByPolar}!MecanumDriveSubsystem@{MecanumDriveSubsystem}}
\subsubsection[{DriveDistanceByPolar}]{\setlength{\rightskip}{0pt plus 5cm}shared\_\-ptr$<$ {\bf AsyncResult}$<$ bool $>$ $>$ MecanumDriveSubsystem::DriveDistanceByPolar (
\begin{DoxyParamCaption}
\item[{double}]{magnitude, }
\item[{double}]{direction, }
\item[{double}]{rotation}
\end{DoxyParamCaption}
)}}
\label{class_mecanum_drive_subsystem_af801998ce7b36ff92e4a15d617ff3b5d}
Drive a distance specified by values in polar form.

Currently only works if CANJaguars are used. If CANJaguars aren't being used, an exception will be thrown.

This function is untested.


\begin{DoxyParams}{Parameters}
{\em magnitude} & The magnitude to move. \\
\hline
{\em direction} & The direction to move. \\
\hline
{\em rotation} & The amount to rotate.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A shared pointer to an ayncronous result of type bool. 
\end{DoxyReturn}
\hypertarget{class_mecanum_drive_subsystem_a027be58738bb491c51eee57ecf34d371}{
\index{MecanumDriveSubsystem@{MecanumDriveSubsystem}!Stop@{Stop}}
\index{Stop@{Stop}!MecanumDriveSubsystem@{MecanumDriveSubsystem}}
\subsubsection[{Stop}]{\setlength{\rightskip}{0pt plus 5cm}void MecanumDriveSubsystem::Stop (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{class_mecanum_drive_subsystem_a027be58738bb491c51eee57ecf34d371}
Stops the drive system.

This function is untested. 

Reimplemented from \hyperlink{class_four_motor_tank_drive_subsystem_aa6e1d4d6887f8ec5c153a524838bf63c}{FourMotorTankDriveSubsystem}.



The documentation for this class was generated from the following files:\begin{DoxyCompactItemize}
\item 
C:/Documents and Settings/Sam/My Documents/My Projects/Entech-\/Fpk/Entech-\/Fpk/MecanumDriveSubsystem.hpp\item 
C:/Documents and Settings/Sam/My Documents/My Projects/Entech-\/Fpk/Entech-\/Fpk/MecanumDriveSubsystem.cpp\end{DoxyCompactItemize}
